package JAVACORE_TRAINING.OOPS_CONCEPTS.ARRAY_AND_COLLECTIONS.DYNAMIC_ARRAYS.SAMPLES;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Sample01 {
	public static void main(String[] args) {
		// 1. Khai báo và khởi tạo
		List<Double> lisA = new ArrayList<>();

		// 2. Đưa phần tử vào mảng
		lisA.add(6.5);
		lisA.add(9.5);
		lisA.add(5.5);
		lisA.add(8.5);
		lisA.add(4.5);

		// 3. Khai báo đối tượng mảng
		List<Double> lisB = new ArrayList<>();
		// Sao chép dữ liệu từ mảng A --> mảng B
		lisB.addAll(lisA);

		// 4. Kiểm tra ...
		if (lisB.contains(6.5)) {
			System.out.println("Có tồn tại phần tử này!!!");
		}

		// 5. Sử dụng get & set
		double dValue = lisB.get(2); // dValue = 5.5
		lisB.set(4, 10.0);

		// 6. Sử dụng để kiểm tra kích thước mảng
		System.out.println("Kích thước của mảng = " + lisB.size());

		// 7. Sắp xếp các phần tử trong mảng
		Collections.sort(lisB);
		System.out.println("---------Sorted---------");
		for (int i = 0; i < lisB.size(); i++) {
			System.out.println("lisB[" + i + "] = " + lisB.get(i));
		}
		
		System.out.println("---------Sorted List A---------");
		Sorted(lisA);
		for (int i = 0; i < lisA.size(); i++) {
			System.out.println("lisA[" + i + "] = " + lisA.get(i));
		}
	}

	static void Sorted(List<Double> lisD) {
		for (int i = 0; i < lisD.size(); i++) {
			for (int j = i + 1; j < lisD.size(); j++) {
				if (lisD.get(i) > lisD.get(j)) {
					Double dTemp = lisD.get(i);
					lisD.set(i, lisD.get(j));
					lisD.set(j, dTemp);
				}
			}
		}
	}
}
